1
I Pericoli della Gestione Manuale della Memoria
AI013Lesson 5
00:00

Gestione manuale della memoria tramite new e delete crea un fragile "contratto di responsabilità". Il programmatore deve prevedere perfettamente ogni percorso di esecuzione—compresi i ritorni anticipati ed eccezioni—per garantire che le risorse siano liberate. Questo approccio è soggetto a fallimenti sistematici.

I Fallimenti Sistematici

  • La Trappola delle Leake (Perdite di Memoria): Nella logica complessa (if-else, switch), non abbinare ogni new con delete deteriora le prestazioni del sistema nel tempo.
  • Invalidazioni dei Puntatori: Errori come Puntatori Pendenti (accedere alla memoria dopo la sua eliminazione) o Doppie Liberazioni generano comportamenti indefiniti e vulnerabilità di sicurezza.
  • Sicurezza per Eccezioni: Se si verifica un'eccezione tra l'allocazione e la liberazione, il delete viene completamente saltato.
new char[]XRitorno Anticipato (Perdita)XEccezione (Perdita)Defusori ()• std::unique_ptr• std::shared_ptr• std::weak_ptr

L' Evoluzione

C++11/14 ha rivisto il <memory> header per allontanarsi dai "puntatori nudi" verso modelli automatici di proprietà che impongono la sicurezza a livello del compilatore.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>